﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using M2B.GestionEntretiens.Contracts;
using M2B.GestionEntretiens.POCOS;

namespace M2B.GestionEntretiens.Models
{
    public class CandidatsModel
    {
        #region Properties
        /// <summary>
        /// Candidats service
        /// </summary>
        private readonly ICandidatsService _candidatsService;
        /// <summary>
        /// La liste des candidats
        /// </summary>
        public IEnumerable<Candidat> Candidats
        {
            get
            {
                if (_candidatsService == null) return null;
                var candidats = _candidatsService.GetCandidats();
                return candidats;
            }
        }
        #endregion
        #region Constructeurs
        /// <summary>
        /// Constructeur ayant comme paramètre l'interface ICandidatsService
        /// </summary>
        /// <param name="candidatsService">CandidatsService</param>
        public CandidatsModel(ICandidatsService candidatsService)
        {
            _candidatsService = candidatsService;

        }
        /// <summary>
        /// Supprimer un candidat
        /// </summary>
        /// <param name="candidatId">Id</param>
        public void DeleteCandidat(int candidatId)
        {
            _candidatsService.DeleteCandidat(candidatId);
        }
        /// <summary>
        /// Ajouter un nouveau candidat
        /// </summary>
        /// <param name="candidat"></param>
        public void CreateTest(Candidat candidat)
        {
            _candidatsService.AddCandidat(candidat);
        }
        /// <summary>
        /// Récupération du candidat à modifier
        /// </summary>
        /// <param name="candidatId">Id</param>
        /// <returns>Candidat</returns>
        public Candidat GetCandidat(int candidatId)
        {
            return   Candidats.FirstOrDefault(el => el.CandidatId == candidatId);
        }
        /// <summary>
        /// Mise à jour d'un candidat
        /// </summary>
        /// <param name="candidat">Candidat</param>
        public void Update(Candidat candidat)
        {
            _candidatsService.UpdateCandidat(candidat);
        }
        #endregion




        
    }
}